package com.example.music_mediaplayer;

import android.Manifest;
import android.app.AlertDialog;
import android.app.Application;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.os.StrictMode;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;

import com.example.music_mediaplayer.tool.LogoutT;
import com.example.music_mediaplayer.tool.ToastTools;

/**
 * Created by quan on 2018/1/16.
 */


public class MyApplication extends Application {
    private Handler myHandler;
    private int time;
    private Context context;
    // 要申请的权限
//    private String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE , Manifest.permission.READ_EXTERNAL_STORAGE};
    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();
//        LogoutT.logout("apppappapapapappapappapappapp");
//        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
//        builder.detectFileUriExposure();
//        StrictMode.setVmPolicy(builder.build());
//        init();
    }

//    public void init(){
//        //版本判断。当手机系统大于23时，才有必要去判断权限是否获取
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
//            //检查权限是否已经获取
//            int i = ContextCompat.checkSelfPermission(context,permissions[0]);
//            //权限是否已经授权 GRANTED----授权   DINIED----拒绝
//            if (i != PackageManager.PERMISSION_GRANTED){
//                //如果没有授权该权限，就去提示用户请求
//                showDialogTipUserRequestPermission();
//            }
//        }
//    }
//
//    //提示用户该请求权限的弹出框
//    public void showDialogTipUserRequestPermission(){
//        new AlertDialog.Builder(context)
//                .setTitle("权限不可用")
//                .setMessage("需要动态申请权限")
//                .setPositiveButton("立即开启", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        startRequestPermission();
//                    }
//                })
//                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        finish();
//                    }
//                }).setCancelable(false).show();
//
//    }
//
//    //开始提交请求权限
//    public void startRequestPermission(){
//        ActivityCompat.requestPermissions(context,permissions,321);
//    }
//
//    @Override
//    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
//        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//
//        if (requestCode == 321){
//            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
//                if (grantResults[0] != PackageManager.PERMISSION_GRANTED){
//                    //判断用户是否点击了不再提醒。（检测该权限是否可以申请）
//                    boolean b = shouldShowRequestPermissionRationale(permissions[0]);
//                    if (!b){
//                        //用户还是想用我的App的
//                        //提示用户去应用设置界面手动开启权限
//                        showDialogTipUserGoToAppSetting();
//                    }else
//                        getActivity().finish();
//                }else {
//                    ToastTools.toastMsg(getActivity(),"权限获取成功");
//                }
//            }
//        }
//    }
//
//    //提示用户去界面设置界面手动开启权限
//    public void showDialogTipUserGoToAppSetting(){
//        dialog = new AlertDialog.Builder(getActivity())
//                .setTitle("访问权限不可用")
//                .setMessage("请在-应用设置-权限-中，允许本app有读取存储的权限")
//                .setPositiveButton("立即开启", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        //跳转打应用设置界面
//                        goToAppSetting();
//                    }
//                })
//                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
//                    @Override
//                    public void onClick(DialogInterface dialog, int which) {
//                        getActivity().finish();
//                    }
//                }).setCancelable(false).show();
//    }
//
//    //跳转到当前应用的设置界面
//    public void goToAppSetting(){
//        Intent intent = new Intent();
//        intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
//        Uri uri = Uri.fromParts("package",getActivity().getPackageName(),null);
//        intent.setData(uri);
//        startActivityForResult(intent , 123);
//    }
//
//    @Override
//    public void onActivityResult(int requestCode, int resultCode, Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
//        if (requestCode == 123){
//            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
//                //检查该权限是否已经获取
//                int i = ContextCompat.checkSelfPermission(getActivity(),permissions[0]);
//                //权限是否已经 授权 GRANTED---授权  DINIED---拒绝
//                if (i != PackageManager.PERMISSION_GRANTED){
//                    //提示用户应该去应用设置界面手动开启权限
//                    showDialogTipUserGoToAppSetting();
//                }else {
//                    if (dialog != null && dialog.isShowing()){
//                        dialog.dismiss();
//                    }
//                    ToastTools.toastMsg(getActivity(),"权限获取成功");
//                }
//            }
//        }
//    }


    public void setTime(int time){
        this.time = time;
    }
    public int getTime(){
        return time;
    }

    public void setMyHandler(Handler handler){
        this.myHandler = handler;
    }
    public Handler getMyHandler(){
        return myHandler;
    }


    public void sendMyHandler(int what) {
        if (myHandler != null) {
            myHandler.sendEmptyMessage(what);
        }
    }

}
